Motor relay arrangements in an H-bridge configuration are conventionally used to control Direct Current (DC) motor direction. In its basic form, an H-bridge circuit typically includes four relays. On one side of the motor, a first relay connects a first motor terminal to a power source or an open circuit and a second relay connects the first motor terminal to ground or an open circuit. On the other side of the motor, a third relay connects a second motor terminal to a power source or an open circuit and a fourth relay connects the second motor terminal to ground or an open circuit. The H-bridge operates to cause current to flow through the motor, and cause forward rotation by energizing the first relay and the fourth relay, which causes current to flow through the first relay, through the motor from the first motor terminal to the second motor terminal, then to ground through the fourth relay. Similarly, to cause a backward rotation, the second relay and the third relay are energized, causing current to flow through the third relay, through the motor from the second motor terminal to the first motor terminal, then to ground through the second relay. Unfortunately, if the wrong combination of relays is energized, too much current may flow through the relays resulting in various problems including, for example, damage to the circuit, the motor, or both.
In addition, conventional motor control systems may exhibit deficiencies related to positional accuracy and control of a motor. FIG. 1 illustrates a timing diagram having quadrature signals (i.e., a first phase signal A and a second phase signal B) generated from an encoder within a motor control system. As known by one having ordinary skill in the art, if the first phase signal A leads the second phase signal B, then the direction of an associated motor is deemed to be positive or forward. Conversely, if the first phase signal A trails the second phase signal B, then the direction of the motor is deemed to be negative or reverse. As illustrated, during time period 270 (i.e., when signal B is trailing signal A), at each rising and falling edge of signal A and signal B, a count pulse 262 occurs and a position count value 264 is incremented. Similarly, during time period 280 (i.e., when signal A is trailing signal B), at each rising and falling edge of signal A and signal B, a count pulse 262 occurs and a position count value 264 is decremented. As such, signal A and signal B together may be indicative of a rotational direction of a motor and position count 264 may be indicative of a position of the motor.
Additionally, in conventional motor control systems, at each rising and falling edge of either signal A or signal B, an encoder may send interrupt and quadrature signals A and B to a controller. Upon receipt of quadrature signals A and B, the controller may determine a rotational direction of an associated motor. Additionally, the controller may determine a reference position of the motor by counting each rising and falling edge of signals A and B. With continued reference to FIG. 1, a time at which an interrupt is sent is depicted by interrupt events 260 (i.e., at the rising and falling edges of signal A). As shown in FIG. 2, during a first time period 470, signal B and signal A are both transitioning, signal B trails signal A and, therefore, an associated motor is moving in a forward or positive rotational direction. Conversely, during a second time period 480, neither signal A nor signal B are transitioning, and, therefore, the associated motor is not in a rotational mode. Although the motor is not operating in a rotational mode during time period 480, the motor control system may experience vibrations which may cause false edges 266 in a signal (i.e., signal A). Accordingly, at each false edge 266, interrupt and quadrature signals with the false edge may be sent to the controller. As a result, a position count determined by the controller may be incorrect and the accuracy of the motor control system may be decreased.
Furthermore, as understood by one having ordinary skill in the art, sending an interrupt to a controller at each rising and falling edge of either signal A or signal B may be demanding on the controller. Moreover, in conventional motor control systems, an interrupt control configured to receive an interrupt may also be configured to receive communication signals. Therefore, when an interrupt control is busy handling a communication signal, attention to an interrupt signal may be delayed, resulting in inaccurate position counts and decreased accuracy of the motor control system.
A need exists to control a DC motor in both the forward rotational direction and the reverse rotational direction, and enable dynamic braking of the motor. Moreover, a need exists to improve the positional accuracy and control of a motor control system.